//文章分类路由处理模块

const db = require("../db")

//查询数据库中的文章分类数据
module.exports.getCatesList=(req,res)=>{
    //定义sql语句
    const sqlstr1='select * from ev_article_cate where is_delete=0 order by id asc'
    db.query(sqlstr1,(err,results)=>{
        if(err)
            return res.cc(err)
        res.send({
            status:0,
            message:"查询成功",
            data:results
        })    
    })
}

//新增文章分类
//流程
//做表单校验
//查询数据库中是否已存在相同的文章名或别名
//新增数据
module.exports.addCates=(req,res)=>{
    //表单校验已完成
    //第二步:执行文章分类查重操作
    const sqlstr2='select * from ev_article_cate where name=? or alias=?'
    db.query(sqlstr2,[req.body.name,req.body.alias],(err,results)=>{
        if(err) return res.cc(err)
        //length=2
        if(results.length===2)
            return res.cc("文章分类名称与别名都被占用,请更换!")
        //length=1的三种情况
        if(results.length===1 && results[0].name===req.body.name && results[0].alias===req.body.alias)
            return res.cc("文章分类名称与别名都被占用,请更换!")
        if(results.length===1 && results[0].name===req.body.name)
            return res.cc("文章分类名称已被占用,请更换!")
        if(results.length===1 && results[0].alias===req.body.alias)
            return res.cc("文章分类别名已被占用,请更换!") 
        //第三步，新增文章分类数据
        const sqlstr3="insert into ev_article_cate set ?"
        db.query(sqlstr3,req.body,(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows!==1)
                return res.cc("文章分类新增失败!")
            res.send({
                status:0,
                message:"文章分类新增成功!"
            })    
        })               
    })
}

//依据id删除表单数据
module.exports.deleteCates=(req,res)=>{
    const sqlstr4='update ev_article_cate set is_delete=1 where id=?'
    db.query(sqlstr4,req.params.id,(err,results)=>{
        if(err) return res.send(err)
        if(results.affectedRows!==1)
            return res.cc("文章分类删除失败")
        res.send(
            {
                status:0,
                message:'文章分类删除成功!'
            }
        )    
    })
}

//依据id查询文章分类
//做表单规则校验
//依据文章id获取数据
module.exports.getCateByid=(req,res)=>{
    const sqlstr5='select * from ev_article_cate where id=?'
    db.query(sqlstr5,req.params.id,(err,results)=>{
        if(err) return res.cc(err)
        if(results.length!==1) return res.cc("未查询到相关数据!")
        res.send({
            status:0,
            message:"查询成功!",
            data:results[0]
        })
    })
}

//依据id更新文章
//做表单校验
//判断分类名与别民是否重复
//修改数据
module.exports.updateCateById=(req,res)=>{
    //判断是否重复
    const sqlstr6="select * from ev_article_cate where id<>? and (name=? or alias=?)"
    db.query(sqlstr6,[req.body.id,req.body.name,req.body.alias],(err,results)=>{
        if(err) return res.cc(err)
        //四种重复情况
        if(results.length===2) return res.cc("分类名与别名都重复了!请更换.")
        if(results.length===1 && results[0].name===req.body.name && results[0].alias===req.body.alias)
            return res.cc("分类名与别名都重复了!请更换")
        if(results.length===1 && results[0].name===req.body.name)
            return res.cc("分类名重复!请更换")
        if(results.length===1 && results[0].alias===req.body.alias)
            return res.cc("别名重复!请更换")
        //修改数据
        const sqlstr7="update ev_article_cate set ? where id=? "
        db.query(sqlstr7,[req.body,req.body.id],(err,results)=>{
            if(err) return res.cc(err)
            if(results.affectedRows!==1)
                return res.cc("分类数据更新失败!")
            //更新成功
                res.send({
                    status:0,
                    message:"分类数据修改成功!"
                })    
        })    
        
    })
}